
# 面向对象-变量
"""
在类中，变量包括 ：类变量 、实例变量 、局部变量

# 1. 类变量
1) 概念 ：定义在类内部，方法外部的变量
2）定义 ：变量名 = 值
3）调用:
    对象名.变量名
    类名.变量名
4）说明 ：定义的类变量 ，它的作用范围是最大的
5） 使用场景 ：定义公共数据 。

# 2. 实例变量
1）概念 ：定义在方法的内部，专门给对象使用的变量
2) 定义 ：self.变量名 = 值
3) 调用 ：self.变量名
4) 作用范围 ：针对声明的对象 ，能在方法中使用变量 。

# 3. 局部变量
1）概念 ：定义在方法的内部或者代码块的内部
2）定义 ：变量名 = 值
3）调用 ：变量名
4）作用范围 ：只能在此方法内或者代码块内部访问

"""

class Bug:

    # 定义属性
    bug_level = [1,2,3,4]
    bug_pri = [1,2,3,4]

    def __init__(self,product,project):
        self.product = product      # 实例变量
        self.project = project
        self.version  = 8.0


    def create_bug(self):
        print("级别列表:",self.bug_level)
        print("在方法内访问实例变量:",self.product)
        print("方法内访问实例变量",self.version)

    def search_bug(self,title=None):

        # 局部变量
        db_bugs = [
            {'bug_id': 1, 'bug_title': '学生列表页使用学生名称进行搜索 结果不正确', 'bug_project': self.project, 'version': 1.0},
            {'bug_id': 2, 'bug_title': '和方法开始减肥盛世嫡妃', 'bug_project': 'tpshop', 'version': 1.0,
             'bug_level': self.bug_level},
            {'bug_id': 3, 'bug_title': '导出的数据中字段(执勤单位)数据显示错误', 'bug_project': 'wx', 'version': 1.0},
            {'bug_id': 4, 'bug_title': '学生列表sdfsdfsdfsdfsdf', 'bug_project': 'wx', 'version': 1.0},
            {'bug_id': 5, 'bug_title': '学员列表页按照学生名称进行搜索 结果不正确', 'bug_project': 'tpshop', 'version': 1.0}
        ]
        if title:
            lst = []
            for bug in db_bugs:
                bug_title = bug.get('bug_title')
                if title in bug_title:
                    lst.append(bug)
            return lst
        return db_bugs


bug = Bug('wx','app')
print(bug.bug_level)
bug.create_bug()

bug1 = Bug('baidu','browser')
bug1.create_bug()
print(bug1.search_bug('学生'))